using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp;
using CKY.AgentPlatform.PromptTemplates.Dto;

namespace CKY.AgentPlatform.PromptTemplates
{
    [RemoteService(IsEnabled = true)]
    public interface IPromptTemplateAppService : IApplicationService
    {
        Task<PagedResultDto<PromptTemplateDto>> GetListAsync(GetPromptTemplateListInput input);
        Task<PromptTemplateDto> GetAsync(Guid id);
        Task<PromptTemplateDto> CreateAsync(CreatePromptTemplateInput input);
        Task<PromptTemplateDto> UpdateAsync(Guid id, UpdatePromptTemplateInput input);
        Task DeleteAsync(Guid id);
        Task<PromptTemplateRenderResultDto> RenderAsync(RenderPromptTemplateInput input);
        Task<PromptTemplateDto> CopyAsync(CopyPromptTemplateInput input);
        Task<PromptTemplateStatisticsDto> GetStatisticsAsync();
        Task<PromptTemplateDto> CreateVersionAsync(CreatePromptTemplateVersionInput input);
        Task<List<TemplateCategoryDto>> GetCategoriesAsync();
    }
}